package com.execlTest.test2;

import java.io.FileOutputStream;
import java.io.OutputStream;

import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.IndexedColors;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.junit.Test;

/**
 * author : 冯孟活 ^_^
 * dates  : 2015年8月31日 下午10:08:56
 * class   : 写Execl
 */
public class WriteExecl {
	
	@Test
	public void writeExeclTest() throws Exception{
		OutputStream os = new FileOutputStream("F:/execl/writeTest2.xlsx");
//		Workbook wb = new HSSFWorkbook(); // 创建一个 2003 版本的Execl
		Workbook wb = new XSSFWorkbook(); // 创建一个 2007 以上版本的Execl
		
		CellStyle cellStyle = wb.createCellStyle(); // 创建一个样式
		cellStyle.setBorderLeft(CellStyle.BORDER_THIN); // 单元格边框粗细
		cellStyle.setBorderRight(CellStyle.BORDER_THIN);// 单元格边框粗细
		cellStyle.setBorderTop(CellStyle.BORDER_THIN);// 单元格边框假粗细
		cellStyle.setBorderBottom(CellStyle.BORDER_THIN);// 单元格边框粗细
		cellStyle.setAlignment(CellStyle.ALIGN_CENTER); // 水平居中  
		cellStyle.setVerticalAlignment(CellStyle.VERTICAL_CENTER); // 垂直居中 
		cellStyle.setBottomBorderColor(IndexedColors.RED.getIndex()); // 设置底边框为红色
		cellStyle.setFillForegroundColor(IndexedColors.DARK_YELLOW.getIndex()); // 设置前景色
		cellStyle.setFillPattern(CellStyle.SOLID_FOREGROUND); // 设置单元格填充颜色
		
		Sheet sheet = wb.createSheet("第一个sheet"); // 创建一个名字的sheet
		sheet.setDefaultColumnWidth(1000); // 设置sheet中的默认宽度
		sheet.setDefaultRowHeight((short) 800); // 设置sheet中的默认高度
		
		Row row = sheet.createRow(0); // 创建一行
		row.createCell(0, Cell.CELL_TYPE_BLANK); // 创建一个blank的单元格
		row.createCell(1, Cell.CELL_TYPE_BOOLEAN).setCellValue(true); // 创建一个boolean的单元格
		row.createCell(2, Cell.CELL_TYPE_FORMULA).setCellValue(3.141592653); // 创建一个formula的单元格
		row.createCell(3, Cell.CELL_TYPE_NUMERIC).setCellValue(0); // 创建一个numeric的单元格
		row.createCell(4, Cell.CELL_TYPE_STRING).setCellValue("String..."); // 创建一个string的单元格
		row.setRowStyle(cellStyle); // 设置行的样式
		wb.write(os); // 向内存中的Execl写出orkbook工作簿
		os.close(); // 记得关闭流，释放资源
	}
}
